In today's communications industry, many networks are designed to support transmission control protocol (TCP) communications. As is well known, TCP is a transport layer protocol that uses acknowledgements to provide reliable end-to-end byte stream transport between hosts in a network.
In conventional network configurations, it is common to use TCP mechanisms to reliably transport data between mobile and non-mobile hosts of the same or connecting networks. FIG. 1 illustrates an example where such a TCP transport connection is used between a host of an Internet protocol (IP) network 10 and a mobile host of a wireless network 12. In this particular example, a mobile host 18 in the wireless network 12 communicates with a remote server 20 of the IP network 10 by means of a TCP connection 22.
The wireless network 12 is formed of a plurality of radio nodes 14, 16 (only two shown) which can each provide access to the IP network 10. As is conventional, the mobile host 18 can access the IP network 10 through any of these radio nodes 14, 16. For the purpose of example, the TCP connection 22 between the mobile host 18 and the remote server 20 of the IP network 10 is shown established through the radio node 14.
At the radio node 14, radio channel resources are allocated to the mobile host 18 so that it can establish and maintain thereafter its TCP connection 22 with the server 20. When the mobile host 18 moves out of coverage of the radio node 14 and in proximity of another node, such as for example the radio node 16, the mobile host 18 is handed off to that other node 16. During handoff, the radio resources allocated by the first radio node 14 are released and typically re-allocated to other mobile hosts. As the mobile host 18 is handed off, the second radio node 16 proceeds to allocate sufficient radio resources for the mobile host 18 to maintain connectivity with the server 20.
During handoff, there is usually a time period during which the mobile host 18 does not have any radio channel resources allocated to it. Between the time the radio channel resources from the first node 14 are released and new radio resources from the second node 16 are allocated, the mobile host 18 may not be able to exchange data with the server 20. In particular and more importantly, during that time, the mobile host 18 may not be able to acknowledge packets successfully received from the server 20.
In TCP, for a transmitting host such as the server 20 to maintain good transmission performance, it is important for a receiving host such as the mobile host 18 to acknowledge packets within a predetermined timeout period. If the server 20 consistently receives acknowledgements within the timeout period, TCP will gradually increase the transmission rate of the server 20 until the most efficient rate at which TCP can operate is achieved. If on the other hand, an acknowledgement is not received within the timeout period, TCP will timeout and cause the server 20 to reduce its transmission rate considerably to inhibit further timeouts.
Between the server 20 and the mobile host 18, timeouts are likely during hand-off. As noted above, each time the mobile host 18 is subject to a handoff, the mobile host 18 will be temporarily without any radio channel resources allocated and therefore unable to send or receive acknowledgements. During these temporary handoff disruptions, the acknowledgements sent between the server 20 and the mobile host 18 will not reach the destination on time. As a result, TCP will inevitably time out and cause the transmitting host (the server 20 or the mobile host 18) to drop its transmission rate significantly.
In TCP, the transmission rate of a transmitting host is controlled by what is commonly referred to as the congestion window. As is well known, the congestion window identifies the allowable number of packets that can be transmitted by a transmitting host prior to receiving any acknowledgement.
For any transmission from a transmitting host to a receiving host, the congestion window of the transmitting host is set based on the acknowledgements received from the receiving host. The congestion window grows if a steady stream of acknowledgements are received, but will be negatively impacted by acknowledgements not received before the expiration of a timeout period. To further illustrate this, FIG. 2 shows a time plot of a TCP congestion window for the server 20 for packets sent from the server 20 (transmitting host) to the mobile host 18 (receiving host).
When the server 20 begins transmitting packets to the mobile host 18, TCP enters a “slow-start” state during which it explores the server's transmission environment to set an appropriate transmission rate. As TCP enters that particular state, the congestion window for the server 20 is set very small, typically one or more MTUs (maximum transmission unit) or packets.
If every packet is acknowledged within the timeout period and TCP does not timeout, the congestion window of the server 20 is increased exponentially with each acknowledgement received. This causes the transmission rate of the server 20 to increase accordingly. When the congestion window reaches a pre-defined slow-start threshold, TCP transitions into a “congestion avoidance” state during which the exponential congestion window growth is reduced to a slow linear growth and stabilized at a particular level which represents the most efficient transmission rate at which TCP can transmit packets without timing out.
If the server 20 fails to receive an acknowledgement for a transmitted packet within the timeout period, TCP will time out. As is well known, timeouts in TCP have a considerable impact on the server's transmission performance. When a timeout occurs, TCP will collapse the congestion window and re-enter the slow-start state, thereby effectively resetting the transmission rate of the server 20 back to its initial value (e.g. MTU). In addition to collapsing the congestion window and re-entering the slow-start state, TCP will also reduce the slow-start threshold by half. Because of this, the duration of the slow-start state will be shorter and the congestion window growth will be considerably reduced.
Another adverse effect of TCP timeouts is that unacknowledged packets are retransmitted. If, for example, packets are transmitted by the server 20 and not received or acknowledged by the mobile host 18 because of a handoff, the packets will be retransmitted. These packets are said to be redundant and typically discarded either because they cannot be delivered to the mobile host 18 or because they have already been transmitted successfully to the mobile host 18. Unfortunately however, transmitting redundant packets increases congestion in the IP network 10 and the wireless network 12 and inevitably reduces transmission performance.
Therefore, because of their adverse impact on transmission performance, timeouts in TCP are highly undesirable. In systems where hosts can maintain connectivity with little or no disruption, the impact on transmission performance may be acceptable. However, systems such as shown in FIG. 1 where TCP communications between the server 20 and the mobile host 18 are subject to handoff disruptions, TCP timeouts will occur and have an adverse effect on transmission performance.
TCP Explicit Congestion Notification (TCP/ECN) as proposed in IETF RFC2481 is a mechanism that uses special bits in IP and TCP headers to inform the end-hosts (both the sender and the receiver) of immanent congestion in the network. It causes intermediate ECN capable routers in an end-to-end connection to set congestion experienced (CE) bit in IP packets in the sender-to-receiver direction, and on receiving such packets, the receiving host to send congestion notification to the sending host via the ECN Echo bit in the TCP acknowledgement. The response of the sending TCP in ECN does not solve the above-discussed problems. It will half its TCP congestion window and reduce the slow-start threshold in order to reduce the amount of data transmitted into the network. Additionally, an ECN Echo will only be sent at the receiving host.
Other methods have been proposed that improve TCP performance over wireless and mobile networks using ECN such as [Peng and Ma, 2000]. Wireless links substantially increase the round trip time of the connection. When congestion is experienced in an intermediate router the ECN CE packet will have to travel all the way to the receiving (wireless) host, which then sends ECN Echo messages to the sending host. [Peng and Ma, 2000] modifies ECN by allowing the intermediate routers to send congestion notification immediately, cutting short of the delay to and from the receiving host. This enables faster congestion response, but it still halves the congestion window and resets the slow-start threshold.
Explicit Loss Notification (TCP/ELN) [H. Balakrishnan and R. H. Katz, 1998] is another proposal which involves sending a notification back to the sending host. This notification indicates that the loss of a packet is not due to network congestion, but possibly because of (wireless) data corruption. This notification causes the sending host to retransmit the designated packet and carry on the normal operations of TCP. This response by the sending host is effective in not disrupting TCP operations when packet loss is not caused by network congestion, but is not suitable for wireless handoffs as packet transmission cannot be sustained due to the loss of the transmission link.
The Suspend/Resume mechanisms provided by GSM/GPRS that operate at the network or link layers also do not address the problems at hand. These mechanisms instruct data transfer to be suspended or resumed based on link conditions between the Mobile Switching Center (MSC) and the Mobile Station (MS) via the Base Station (BS). However, these methods will have no impact on TCP. They may hold up data to be transferred to and within the network. The TCP host, however, will be transparent to these, and will continue its normal operations without stopping (re)-transmitting data.
In order to avoid TCP timeouts and reduce any adverse effect on transmission performance, it would be desirable that TCP hosts such as the mobile host 18 and the server 20 respond more robustly to periods of transmission loss occurring during mobile handoff.